1//
2//  NSString+compactDescription.m
3//  KeychainMigrator
4//
5//  Created by J Osborne on 2/19/13.
6//
7//
8
9#import "NSString+compactDescription.h"
10
11@implementation NSString (compactDescription)
12
13-(NSString*)compactDescription
14{
15	static NSCharacterSet *forceQuotes = nil;
16	static dispatch_once_t setup;
17	dispatch_once(&setup, ^{
18		forceQuotes = [NSCharacterSet characterSetWithCharactersInString:@"\"' \t\n\r="];
19	});
20	
21	if ([self rangeOfCharacterFromSet:forceQuotes].location != NSNotFound) {
22		NSString *escaped = [self stringByReplacingOccurrencesOfString:@"\\" withString:@"\\\\"];
23		escaped = [escaped stringByReplacingOccurrencesOfString:@"\"" withString:@"\\\""];
24		return [NSString stringWithFormat:@"\"%@\"", escaped];
25	} else {
26		return self;
27	}
28}
29
30@end
31